package com.xb.service;


import com.xb.entity.ChangePasswordReqVO;
import com.xb.entity.User;
import com.xb.util.Result;

import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * Service接口
 */
public interface IUserService {
    /**
     * 查询
     *
     * @param email 邮箱
     * @return 对象
     */
    public User selectUserByEmail(String email);

    /**
     * 查询
     *
     * @param username 账号
     * @return 对象
     */
    public User selectUserByUsername(String username);


    public Result resetPassword(Integer id);

    /**
     * 查询列表
     *
     * @param user
     * @return 集合
     */
    public List<User> selectUserList(User user);

    /**
     * 分页查询列表
     *
     * @param user
     * @return 集合
     */
    public Result selectUserList(User user, Integer page, Integer limit);

    /**
     * 新增
     *
     * @param user
     * @return 结果
     */
    public boolean insertUser(User user, List<Integer> roleIds);


    public Result checkDbStatus();

    /**
     * 修改
     *
     * @param user
     * @return 结果
     */
    public int updateUser(User user);

    public Result updateUserInfo(User user, HttpSession session);

    public Result changePassword(ChangePasswordReqVO reqVO, HttpSession session);

    public Result insert(User user);

    public Result update(User user);

    public Result del(Integer id);

}
